#include <stdio.h>
#include <stdlib.h>
#include <mqueue.h>
#include <unistd.h>
#include <string.h>
#include <time.h>

int main(void){
    //设置消息队列参数
    struct  mq_attr my_mq_attr;
    my_mq_attr.mq_curmsgs=0;//当前消息数量
    my_mq_attr.mq_flags=0;//消息状态，默认为0
    my_mq_attr.mq_maxmsg=10;//消息队列容量
    my_mq_attr.mq_msgsize=100;//每条信息的大小-字节

    //设置消息队列名称
    char *mq_name = "/father_son_mq";
    //创建消息队列
    mqd_t mqd=mq_open(mq_name,O_CREAT|O_RDONLY,0644,&my_mq_attr);
    if(mqd==-1){
        perror("mq_open");
        exit(EXIT_FAILURE);
    }
    pid_t son_pid = fork();
    if(son_pid==-1){
        perror("fork");
        exit(EXIT_FAILURE);
    }
    if(son_pid==0){

    }else{
        char send_buf[100]={0};
        struct timespec time_info;
        for(int i=0;i<10;i++){
            memset(send_buf,0,100);
            sprintf(send_buf,"父进程%d第%d次发送数据：hello",getpid(),(i+1));
            //准备超时时间
            clock_gettime(0,&time_info);
            time_info.tv_sec+=5;//设置五秒超时
        }

    }
    return 0;

}